Fix resolution of the virtual fact on FreeBSD#2744
Draft
smortex wants to merge 4 commits intopuppetlabs:mainfrom
Draft
Fix resolution of the virtual fact on FreeBSD#2744smortex wants to merge 4 commits intopuppetlabs:mainfrom
virtual fact on FreeBSD#2744smortex wants to merge 4 commits intopuppetlabs:mainfrom
Conversation
Collaborator
|
Can one of the admins verify this patch? |
Contributor
Author
|
Interesting failures with jRuby… I don't understand what is happening wrongly 🧐. Suggestions are welcome! |
Move all files that defines Facter::Resolvers::Linux::* into the lib/facter/resolvers/linux directory. Also only load them on Linux systems as they are Linux-specific.
All other filesystems resolvers are named "filesystems" (plural), so match the same name because all these resolvers have the same purpose.
FreeBSD has containers (jails) but already handled through the 'virutal' resolver, so for now we just consider Linux being able to handle containers as the code aleady depend on Linux-specific resolvers.
We should not call Linux-specific code from a non-Linux system. This cross-platform utility class needs to skip Linux code when running on a non-linux platform.
12e3a72 to
5322adf
Compare
|
Hola! What is keeping this from getting merged, I wonder? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We should not call Linux-specific code from a non-Linux system. Before #2743, the Linux-specific code was unexpectedly loaded, and the Linux resolver was non-functional on FreeBSD, causing a warning to be output. With #2743, the Linux specific code is not loaded anymore, breaking further the fact resolution.
In order to fix this, the virtual_detector code needs to either be split into platform-specific pieces, or take care to only call platform-specific code on these platforms. Given this is a utility class, I chose the second route, and since the Linux-specific code is now only loaded on Linux, rely on the namespace existing or not to determine if we should run that code.
This is part 2/2 of a fix of #2742